Recent Technotes
October 1999
New
- TN1187: Digital CD Audio
Starting with Mac OS 9.0 there is a new way of playing CD audio—
digitally. Pure digital data is read from the CD, played through the Sound Manager as a PCM (Pulse Code Modulation—standard uncompressed audio) data stream, and then sent out to the speakers (where your ears require that it be converted back to an analog signal). This Technote describes how an application uses the new digital CD audio support and what a CD or DVD driver needs
to do to support playing audio digitally.
- TN1186: How To Be a Good Multiple Users Citizen
This Technote describes the new APIs provided by the Multiple Users
technology introduced in Mac OS 9.0. It also answers the
most frequent questions from developers and provides a few
workarounds for commonly encountered problems.
This Note is directed at application developers who are
accessing folders within the System Folder or using the
FindFolder API and need to pay extra attention to the access privileges of those folders.
- TN1185: New ColorSync 3.0 APIs
This Technote describes the APIs your application can use to take advantage of new features available in ColorSync 3.0.
- TN1184: FCBs, Now and Forever
Mac OS 9.0 changes the format of the File Control Block (FCB) table
significantly. This technote explains the original format of
the FCB table, how the use of the FCB table has evolved over
time, and how you can access FCB information in a compatible
way. All Mac OS developers should read the Concrete Advice section to ensure that their software is compatible with Mac OS 9.0 and
beyond. If your software is not compatible with Mac OS 9.0
(specifically, it causes a system error 119), you should read the Debugging FCB Problems section. The other sections of the technote are background material for the Mac OS archeologists out there.
- TN1183: QuickTime 4.0.3
QuickTime 4.0.3 can be described as a minimal-changes release that provides a number of miscellaneous bug fixes. This Technote describes the changes made between the final release of QuickTime 4 and the update release of QuickTime 4.0.3.
- TN1182: NewGWorlds in VRAM and AGP Memory
This Technote describes the changes in NewGWorldNewGWorld with the release of Mac OS 9. The NewGWorldNewGWorld routine now supports allocation of offscreen GWorld’s in AGP memory and VRAM. This allows the application programmer much more flexibility in deciding how to allocate their off-screen images. It also adds more complexity and can, if used incorrectly, result in significantly poorer application performance. This Technote describes the new selectors, covers their basic use, then goes on to illustrate some of the basic problems associated with their use. Finally, the note discusses basic performance figures from a sample implementation.
- TN1181: Sherlock’s Find by Content Text Extractor Plug-ins
This Technote describes the API for creating Find By Content Text
Extractor Plug-ins. Text Extractor Plug-ins are used by
Find by Content to extract the textual information stored in
a document when it is creating indexes and summarizing files.
By doing so, it is possible for users to avoid indexing peripheral data such as formatting commands, HTML tags, and other data that does not
relate to the information stored in the document. By creating Text Extractor Plug-ins for their document types, developers make it possible for users to conduct meaningful searches for information stored
in documents created by their applications. This Technote provides information necessary for creating and installing Text Extractor Plug-ins. In addition, an annotated example Text Extractor Plug-in is provided. Developers can easily modify this example to create their own
plug-in for use with their own file formats.
- TN1180: Sherlock’s Find By Content Library
This Technote describes the Find by Content libraries used by
Sherlock for searching the contents of files.
The Find by Content libraries export a full suite
of routines and functions allowing applications to
perform content based searches of files. With MacOS 8.6, Text Extractor Plug-ins were introduced. These
allow Find By Content to extract textual information from binary
files for inclusion in index files. Text Extractor Plug-ins
are documented in Technote TN1181, “Find by Content Text Extractor Plug-ins.” This Note is directed at application developers who wish
to access the Find By Content library directly from their
applications.
- TN1179: PostScript Output Filters For LaserWriter 8.7
LaserWriter 8 version 8.7 introduces the concept of PostScript output filters and their use during printing. PostScript output filters are code fragments that live in the data fork of files that reside within the “Printing Plug-ins” folder contained in the Extensions folder. These code fragments can intercept the PostScript output data stream generated by LaserWriter 8 and add, remove, or modify the data before it is transmitted to the output device. Through this type of modification, a PostScript output filter can implement customized control of features for a specific printer model or can implement new user features across a range of PostScript printers without requiring changes to LaserWriter 8. The remainder of this document refers to PostScript output filters as “filters” or “plug-ins.”
- TN1178: LaserWriter 8.7: Scriptable Printing
Until the introduction of PrintingLib 8.7 (which is included with LaserWriter 8, Version 8.7), it has been impractical for an application to extend the scriptability of the Print Documents Apple event. The application receives the print event, but the printer driver controls and uses the settings for the print job. In addition, the print settings used by each driver have been different. This document details the extensions to the print event that allow scripters to control printing. This document also describes the changes applications and printer drivers must make to support these new scriptable printing features.
- TN1177: Introducing the LaserWriter 8 Driver version 8.7
This Technote outlines some of the new features and changes that Apple has made in the LaserWriter 8 version 8.7 driver (released as part of Mac OS 9). It describes expanded technology and user interface support and what these mean to the developer community. LaserWriter 8.7 is only available as part of Mac OS 9 and can only be run on PowerPC machines running Mac OS 9.
- TN1176: Mac OS 9
This Technote discusses changes and corrections in the next generation of Mac OS: Mac OS 9. This system follows Mac OS 8.6 and contains several enhancements and revised features. All developers interested in creating products compatible with Mac OS 9 will want to review this document.
September 1999
New
- TN1175: Applet Signing with MRJ and Javakey
Applet signing has been the topic of considerable discussion throughout the Java community. Processes and procedures related to the signing of applets are generally complex and sometimes confusing, and users have had issues related to using and signing applets with MRJ. The purpose of this document is to discuss the technology being employed and to clarify the procedures needed to sign jar files, install certificates, and successfully utilize a signed applet.
- TN1174: Optimization Strategies for Mac OS
Performance tuning is a critical part of all application development. Customers don’t like sluggish applications, and are willing to vote with their money. The good news is that small changes in an application can result in solid increases in the overall performance. This technote attempts to gather a significant amount of lore on tuning Mac OS applications for the best possible performance.
August 1999
New
- TN1173: Understanding Open Transport Asset Tracking
This Technote describes the asset tracking mechanism used
for the existing Open Transport programming interface, and
how that mechanism has been “tuned up” for Carbon. It is directed at all programmers who use the Open Transport client programming interface.
- TN1172: Writing Plug-ins for Desktop Printer Utility
This document describes how to write plug-ins for DTPU version 1.2 and later. A DTPU plug-in is a mechanism for programmers to write shared libraries which can be recognized by DTPU and provide means to configure different types of desktop printers that are not built into DTPU. A good use of this is to provide user interface for configuring external hoses for LaserWriter 8.
Updated
- TN1144: Writing Custom Hoses For LaserWriter 8.6
LaserWriter 8, Versions 8.6 and later, supports printing to a variety of desktop printer (DTP) types, including PAP, LPR and IrDA. Each desktop printer can have its own method of communicating with its associated physical printer, RIP, or other post-printing processor. LaserWriter 8.6, through the invention of custom “hoses,” added the ability for shared libraries to implement various communication methods and for these libraries to be loaded dynamically based upon a DTP’s type. This Technote gives an overview of the custom hose specification for developers.
- TN1126: A Checklist for Building Applications and Extensions
This Technote tries to summarize all of the different items which you need to include to build a good, well-behaved Macintosh product. In August 1999, this document was updated to correct the Rex definition of CCI.
June 1999
New
- TN1171: LaserWriter 8.6: How to Write a Converter Plug-in for the Download Manager
This document describes in detail how to write a plug-in converter module for use with the Download Manager under PrintingLib version 8.6 (included with LaserWriter 8 version 8.6) and later. It contains information about the pieces a plug-in must have, discussion of a sample plug-in and tips for plug-in developers. This Technote is directed at application developers who wish to write plug-in converters.
- TN1170: The Printing Plug-ins Manager
The Printing Plug-ins Manager is intended to make it straightforward for software clients to create, load, and use shared libraries which can be treated as printing plug-ins. The Download Manager has been implemented using the Printing Plug-ins Manager to manage its plug-ins. Future printing software will use the Printing Plug-ins Manager to manage other plug-ins. This Technote is directed at application developers who wish to write plug-in modules.
- TN1169: The Download Manager
This Technote discusses the Download Manager API that Download Manager clients would use to call the Download Manager to cause a file, or other data, to be downloaded to a PostScript printer. (The Desktop Printing software is an example of a Download Manager client that uses this API.) Furthermore, this Technote examines the APIs that the Download Manager uses to call the low-level converters. This material is intended for the writers of the low-level converters which are called by the Download Manager.
Updated
- TN1144: Writing Custom Hoses For LaserWriter 8.6
LaserWriter 8, Versions 8.6 and later, supports printing to a variety of desktop printer (DTP) types, including PAP, LPR and IrDA. Each desktop printer can have its own method of communicating with its associated physical printer, RIP, or other post-printing processor. LaserWriter 8.6, through the invention of custom “hoses,” added the ability for shared libraries to implement various communication methods and for these libraries to be loaded dynamically based upon a DTP’s type. This Technote gives an overview of the custom hose specification for developers.
- TN1161: Extending the Print Record for LaserWriter 8
This Technote describes what changes need to be made in your application to support drivers that use extended print records in LaserWriter 8.
Technotes
|